/**
 * @module QL  @diego 16/11/04
 */
var QL = QL || {};
/**
 * 返回指定的命名空间，如果命名空间不存在则创建命名空间。
 * 备注：命名时需小心，注意保留关键字，可能在一些浏览器无法使用。
 *
 * @method namespace
 * @param {String}  至少需要创建一个命名空间
 * @return {Object} 最后一个命名空间创建的对象的引用
 */
QL.namespace = function(str){
    var parts = str.split("."),
        parent = QL,
        i,
        l;
    if( parts[0] == 'QL') {
        parts = parts.splice(1);
    }
    for ( i = 0,l = parts.length; i < l; i++) {
        if (typeof parent[parts[i]] === 'undefined') {
            parent[parts[i]] = {};
        }
        parent = parent[parts[i]];
    }
    return parent;
};
QL.even = {
    /**
     * @method popover popover框，用户头像和名字经过的时候显示
     * @param {Array} 要加载popover框的对象
     */
    popover: function(obj){
        obj.mouseenter(function(){
            var next = $(this).next(".ql-popover"),
                direction = next.attr("class"),//根据类名判断popover框的方向
                offset = $(this).offset(),
                objWidth = $(this).width(),  //得到当前对象的宽度值
                top = offset.top,
                left = offset.left -252 +objWidth;//当前距离左边的距离减去popover的宽  因为左边显示的是经过头像的  所以还要加上图像的宽度   for left popover
            if (direction.indexOf("left") > 0) {//头像的左边，默认是下面
                next.css({"top": top + 55 +'px','left': left + 'px'}).show();
            } else {
                next.css({"top":top + 40 +'px','left': offset.left + 'px'}).show();
            }
            if( $(".ql-warp").height() - top < 150 ){//部分页面底部还有聊天内容 ，并且距离footer还很近 二者的高度低于popover框的时候，调整为右方向
                next.addClass("right");
                next.css({"top": top - 100 + 'px','left': offset.left + objWidth + 25 + 'px'}).show();
            }
        }).mouseleave(function(){
            $(this).next(".ql-popover").hide();
        });
    },
    /**
     * @method dropdownHover bootstrap的dropdown增加鼠标经过显示
     */
    dropdownHover:function(){
        $(".dropdown").mouseenter(function(){
            $(this).find(".dropdown-toggle").attr("aria-expanded",true);
            $(this).addClass("open");
        }).mouseleave(function(){
            $(this).find(".dropdown-toggle").attr("aria-expanded",false);
            $(this).removeClass("open");
        });
    },
    /**
     * @method editor  markdown编辑器
     * @param {obj}  textarea id
     * @param {width} 期望的编辑器宽度
     * @param {height} 期望的编辑器高度
     */
    editor:function(obj,w,h){
        editormd(obj, {
            width: w,
            height: h,
            toolbarAutoFixed: false,
            path: 'http://www.qlcoder.com/lib/',
            onload: function () {
            }
        });
    }
};

QL.namespace('QL.even.dropdownHover')();